package com.knowledge.plus.设计模式.工厂模式.抽象工厂模式.impl;

import com.knowledge.plus.设计模式.工厂模式.pojo.Sender;
import com.knowledge.plus.设计模式.工厂模式.pojo.impl.MailSender;
import com.knowledge.plus.设计模式.工厂模式.抽象工厂模式.Provider;

/**
 * 工厂类
 *
 * 这个模式的好处就是，如果你现在想增加一个功能：
 * 发及时信息，则只需做一个实现类，实现Sender接口，同时做一个工厂类，实现Provider接口，
 * 就OK了，无需去改动现成的代码
 *
 * @author PF.Tian
 * @since 2022/3/7
 */
public class SendMailFactory implements Provider {

    @Override
    public Sender produce() {
        return new MailSender();
    }

    /**
     * 测试
     */
    public static void main(String[] args) {
        Provider provider = new SendMailFactory();
        Sender sender = provider.produce();
        sender.send();
    }
}
